<?php
class Service_ArrayConverter {
	
	/**
	 * Подготовливаем массив для селекта
	 * @param array $arrBig
     * @param string $key
     * @param string $column
     * @return array
     */
	public static function makeSimpleArrayToSelect(array &$arrBig, $key, $column) {
		$arrReturn = array();
		foreach ($arrBig as $arr) {
			$arrReturn[$arr[$key]] = $arr[$column];
		}
		
		return $arrReturn;
	}
	
	/**
	 * Делаем столбец массива ключем
	 * @param array $arrs
	 * @param unknown_type $key
	 * @return multitype:unknown
	 */
	public static function makeKeyFromColumn(array &$arrs, $key) {
		$arrReturn = array();
		foreach ($arrs as $arr) $arrReturn[$arr[$key]] = $arr;
		
		return $arrReturn;
	}
	
	public static function groupArray(array &$arrs, $key) {
		$arrReturn = array();
		foreach ($arrs as $arr) {
			$arrReturn[$arr[$key]][] = $arr;
		}
		
		return $arrReturn;
	}
	
	public static function sortArray($arrIn, $sortFieldName, $sortDirection = 'ASC') {
		$tempSize = sizeof($arrIn);
		for ($i = 0; $i < $tempSize; $i++) {
			for ($j = $i; $j < $tempSize; $j++) {
				if (($arrIn[$j][$sortFieldName] < $arrIn[$i][$sortFieldName] && $sortDirection == 'ASC') || ($arrIn[$j][$sortFieldName] > $arrIn[$i][$sortFieldName] && $sortDirection == 'DESC')) {
					$temp = $arrIn[$i];
					$arrIn[$i] = $arrIn[$j];
					$arrIn[$j] = $temp;
				}
			}
		}
		return $arrIn;
	}
	
	/**
	 * Возвращаем колонку из двумерного массива
	 *
	 * @param array $arrIn - двумерный массив
	 * @param mixed $columnName - название или номер колонки, которую нужно вернуть
	 * @return array - одномерный массив, соответствующий колонке входного
	 */
	public static function getColumn(array $arrIn, $columnName) {
		if (empty($arrIn)) return array();
		$arrColumn = array();
		foreach ($arrIn as &$arrElement) {
			$arrColumn[] = $arrElement[$columnName];
		}
		return $arrColumn;
	}
	
} 